iT邦幫忙

2023 iThome 鐵人賽

DAY 20
2
AI & Data

LLM 學習筆記系列 第 20

LLM Note Day 20 - 上下文學習 In-Context Learning

  • 分享至 

  • xImage
  •  

簡介

上下文學習 (In-Context Learning, ICL) 是一種語言模型的現象,LLM 可以根據提供的範例來產生預測的標記,而不需要任何額外的微調。這聽起來相當神奇,今天就來探索這個神秘的 ICL 能力吧!

可愛貓貓 Day 20

(Powered By Microsoft Designer)

起源

In-Context Learning 一詞源自 GPT-3 的論文,當時研究人員發現 LLM 訓練到後面,突然開始浮現一種能力,我們只要將範例按照一個固定的格式排好,模型就會自已產生正確答案。這個格式甚至可以非常隨意,只需要前後一致即可。

雖然名稱帶有 Learning 但他並不是一種訓練手法,其本質上是一種被觀察到的現象,然而為何 LLM 會產生 ICL 能力,至今也沒有一個非常好的解釋。現在 ICL 則被當成一種 Prompting 的技巧,廣泛應用於各個領域。

基本

ICL 的初始概念相當簡單,只需要給 LLM 一個固定格式的資料即可,例如:

今天天氣真好 => Positive
今天天氣真差 => Negative

好煩喔又下雨 =>

將以上這段 Prompt 丟進 ChatGPT 測試,就會發現模型回覆 "Negative"。我們甚至沒告訴模型我們實際的任務定義是什麼,他就很自然的推理出正確答案。

在 ICL 裡面,可以使用任意格式,只需要前後一致即可,例如:

Input: 這部電影真好看
Label: Positive

Input: 這個編劇也太瞎
Label: Negative

Input: 運鏡流暢氣氛佳
Label:

In-Context Learning 與 Few-Shot Prompting 非常相似,但後者更傾向於借助模型 Instruction Following 的能力來進行,而 In-Context Learning 通常只需要模型的 Completion 能力就能達到。

這個能力使研究人員十分驚訝,彈性的格式與相當泛化的準確率,意味著 LLM 不再需要任何額外的微調,就能夠快速適應到任何領域的任務上。於是大家開始好奇,語言模型的 ICL 能力是從何而來?

事實上目前還沒有一個很共識的定論,有人認為 LLM 並不是真的從範例去學習如何預測,而是模型本來就有分類能力。也有人認為 ICL-Prompt 本身在進行一種相當小型的微調,是 Meta Learning 的泛型。有興趣可以參考 Reference 的論文。

但從結果論來說,這些具有 ICL 能力的模型,通常訓練數據都相當豐富,模型本身在其他任務上也具有相當泛化的能力。因此不是只有 GPT-3 這種等級的 LLM 才具備 ICL 能力,其實像是 Llama 7B 乃至於 GPT-2 都有 ICL 的能力,只是這個能力是否顯著,以及是否泛化、準確等。

應用

除了情感分類以外,ICL 也能應用在其他任務上,這個章節就來介紹一些可能的應用場景。

翻譯

雖然 LLM 本身已經具備相當不錯的翻譯能力,但某些用詞可能不盡人意:

"I need a printer to print my code" 翻譯成中文

=> 我需要一臺打印機來打印我的代碼

支語警察

透過 ICL 能夠進一步讓翻譯更為精緻,例如:

printer => 印表機
print => 列印
code => 程式碼
I need a printer to print my code =>

可以得到以下結果:

翻譯

除了這種地方文化用語以外,翻譯罕見詞或新詞時也特別好用,例如遊戲技能的翻譯,就經常有遊戲自己獨樹一格的翻譯方式。

文字正規化

文字正規化 (Text Normalization, TN) 也是個相當常用的領域,例如一個阿拉伯數字經常有多種念法:

1 => ㄧ
2 => 二、兩
3 => 三
11 => 十一
20 => 二十
22 => 二十二、二二
200 => 兩百
201 => 兩百零一、二百零一、二零一
257 =>

中文數字

再也不用堆一大堆複雜的規則來產生中文數字念法了!只需要列舉一些念法的例子,模型就能舉一反三。若是遇到客製化的需求,例如軍隊的數字念法或轉帳的大寫中文數字等,也只需要稍微修改例子即可。

結論

今天介紹了 In-Context Learning 的技巧,我們可以透過這個技巧,簡單的將 LLM 導向目標任務上。除了翻譯與文字正規化以外,還有相當多可以應用 ICL 技巧的場景。使用這個技巧的優點之一,是不需要額外微調,以及可解釋性高。通常只要觀察範例是否給錯,就可以知道為何模型會答錯。

然而事實上 LLM 本身依然是高度不可解釋性的黑盒子,但基於 LLM 的 ICL 卻是可解釋性的?其實就連 LLM 為何會有 ICL 能力都沒有很好的解釋,而 ICL 的高解釋性其實是指「容易除錯」的部份而已,有時也是會遇到莫名其妙的例子,錯了就是錯了,唯一的解釋就是他沒有在範例裡面。這到底算不算是可解釋性高呢?也許是這個領域還需要多加探索的部份。

參考


上一篇
LLM Note Day 19 - Offloading Inference
下一篇
LLM Note Day 21 - 資訊檢索小知識 IR Tips
系列文
LLM 學習筆記33
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言